import { ref } from 'vue'

import PageModal from '@/components/page-modal/index'

type CallbackFn = (item?: any) => void

export function usePageModal(addFns?: CallbackFn, editFns?: CallbackFn) {
  // 处理是否展示某些特殊项
  const pageModalRef = ref<InstanceType<typeof PageModal>>()

  const defaultInfo = ref({})

  const addClick = () => {
    defaultInfo.value = {}
    if (pageModalRef.value) {
      pageModalRef.value.showModal = true
    }
    addFns && addFns()
  }

  const editClick = (item: any) => {  
    defaultInfo.value = { ...item }
    if (pageModalRef.value) {
      pageModalRef.value.showModal = true
    }
    editFns && editFns(item)
  }

  return [ pageModalRef, defaultInfo, addClick, editClick ]
}